<template>


  <SearchTablePage :search-config="baseTableSearchModel" :table-config="baseTableModel" />

</template>

<script lang="ts" setup>
defineOptions({
  name: 'AssistSpecialRoomPageData',   //全局别名
  title: '表格页',   //标题
});
import CommonApi from '~/src/api/CommonApi';
// 接口
import AssistSpecialRoomApi from '/@/api/webPath/AssistSpecialRoomApi.ts';


import FORM_FIELD_TYPE from '/@/constants/FormFieldType';
import VDialog from '/@/utils/dialogUtil.ts'
import { useEnumList } from '~/src/utils/useEnumList';

onMounted(() => {
  getCANciTypeList()
})
const router = useRouter();
const baseTable = ref(null as any);
const baseTableSearch = ref(null as any);
const editRef = ref<any>(null);
const enumList = useEnumList("AssistSpecialRoomType")


const canCiTypeList = ref()
function getCANciTypeList() {
  AssistSpecialRoomApi.getCanciTypeList().then(res => {
    // console.log(1111111111111111, res.data);
    canCiTypeList.value = res.data.map(item => ({ label: item.dicClassTypeName, value: item.dicClassTypeName }))
    console.log("canCiTypeList", canCiTypeList.value)
  })
}
// 表格搜索初始化searchModel
const baseTableSearchModel = ref({
  columnCount: 4,
  expandLimit: 6,
  autoFit: true,
  columnWidth: '320px',
  labelPosition: 'right',
  labelWidth: '100px',
  items: [ //搜索项初始化

    {
      label: "日期",
      field: "date",
      clearable: true,
      type: FORM_FIELD_TYPE.DATE_RANGE,
      placeholder: "请输入",
      startDateField: "startDate",
      endDateField: "endDate",
      rule: {
        trigger: 'blur',
        validator: (rule: any, value: any, callback: any) => {  //绑定验证
          callback();
        },
      },

      props: {
        // 超出当日日期禁止选择
        disabledDate: (date: Date) => {
          console.log("date", date)
          if (new Date().getTime() > date.getTime()) {
            return false
          } else {
            return true
          }
        }
      },
      config: {
        props: {   //日期精度配置
          type: "daterange",
          startPlaceholder: "开始日期",
          endPlaceholder: "结束日期",
          format: "YYYY-MM-DD",
        }
      },
    },

    {
      label: "地点",
      field: "place",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    // {
    //   label: "类型",
    //   field: "type",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.SINGLE_LAYER_SELECT,
    //     // options: [
    //     //   {
    //     //     value: '1',
    //     //     label: "紫外线消毒记录"
    //     //   },
    //     //   {
    //     //     value: 2,
    //     //     label: "专间温湿度记录"
    //     //   }
    //     // ] 
    //     options: enumList,

    //   placeholder: "请输入",

    // },

    {
      label: "餐次",
      field: "mealTimes",
      clearable: true,
      type: FORM_FIELD_TYPE.SINGLE_LAYER_SELECT,
      options: canCiTypeList,
      placeholder: "请输入",

    },

    // {
    //   label: "时间",
    //   field: "breakfastTime",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.TIME,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "温度",
    //   field: "breakfastTemperature",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "湿度",
    //   field: "breakfastHumidity",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // // {
    // //   label: "是否消毒",
    // //   field: "isBreakfastDisinfect",
    // //   clearable: true,
    // //   type: FORM_FIELD_TYPE.SINGLE_LAYER_SELECT,
    // //     options: [
    // //       {
    // //         value: '0',
    // //         label: "否"
    // //       },
    // //       {
    // //         value: '1',
    // //         label: "是"
    // //       }
    // //     ],

    // //   placeholder: "请输入",

    // // },

    // {
    //   label: "午餐",
    //   field: "lunch",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "时间",
    //   field: "lunchTime",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.TIME,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "温度",
    //   field: "lunchTemperature",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "湿度",
    //   field: "lunchHumidity",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "是否消毒",
    //   field: "isLunchDisinfect",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.SINGLE_LAYER_SELECT,
    //     options: [
    //       {
    //         value: '0',
    //         label: "否"
    //       },
    //       {
    //         value: '1',
    //         label: "是"
    //       }
    //     ],

    //   placeholder: "请输入",

    // },

    // {
    //   label: "晚餐",
    //   field: "dinner",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "时间",
    //   field: "dinnerTime",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "温度",
    //   field: "dinnerTemperature",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "湿度",
    //   field: "dinnerHumidity",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "是否消毒",
    //   field: "isDinnerDisinfect",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.SINGLE_LAYER_SELECT,
    //     options: [
    //       {
    //         value: '0',
    //         label: "否"
    //       },
    //       {
    //         value: '1',
    //         label: "是"
    //       }
    //     ],

    //   placeholder: "请输入",

    // },

    // {
    //   label: "累计时间",
    //   field: "totalTime",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    {
      label: "消毒/记录人",
      field: "operator",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    // {
    //   label: "创建人",
    //   field: "creator",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "创建时间",
    //   field: "create_time",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.DATE_RANGE,
    //   placeholder: "请输入",

    //   config: {
    //     props: {   //日期精度配置
    //       type: "daterange",
    //       startPlaceholder: "开始日期",
    //       endPlaceholder: "结束日期",
    //       format: "YYYY-MM-DD",
    //     }
    //   },
    // },

  ],

  buttons: [    //功能区域


    {
      name: "新增",
      buttonClass: 'primary',
      width: 100,
      click: ({ row, handlers }) => {        // 点击回调事件方法钩子，  点击触发

        VDialog.open({
          title: '新增',

          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/assistSpecialRoom/edit',
            query: {},

          },

          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });

      },
    },

    // {
    //   name: "导入",
    //   buttonClass: 'primary',
    //   width: 100,
    //   click: ({ row, handlers }) => {   //暴露的方法钩子
    //     //  CompanyInfoApi.pageDataXls( handlers.getRequestParams(),handlers.getXlsTitle())
    //     VDialog.open({
    //       title: '导入',
    //       content: { //内容初始形式
    //         type: 'component', //text:"",预留文本
    //         name: '/AttachmentUpload',
    //         // query: { companyInfoId: row.id },
    //       },
    //       config: {
    //         additionalSaveParams: { type: 1 },
    //         additionalParamKey: "type",
    //         additionalParamLabel: "专间记录类型",
    //         additionalParamOptions: [
    //           {
    //             value: '1',
    //             label: "紫外线消毒记录"
    //           },
    //           // {
    //           //   value: 2,
    //           //   label: "专间温湿度记录"
    //           // },
    //         ],
    //         // additionalParamOptions: enumList,
    //         doUpload: AssistSpecialRoomApi.excelImport,
    //         doBatchSave: AssistSpecialRoomApi.batchSave,
    //         templateType: "company_template_type_1",
    //         tips: '注：请先点击“下载模版”按钮下载模版，按照模版填写数据，再进行导入。'
    //       },
    //       callBack: (data: any) => {
    //         handlers.refresh()
    //         console.log("refresh", handlers.refresh)
    //         // handlers.refresh()
    //         console.log("upload recived data:", data)
    //       },
    //       onClose: () => {
    //         console.log("对话框已关闭");
    //       },
    //     })
    //   }
    // },
    {
      name: "导出",
      buttonClass: 'primary',
      width: 100,
      click: ({ row, handlers }) => {   //暴露的方法钩子
        AssistSpecialRoomApi.pageDataXls(handlers.getRequestParams(), handlers.getXlsTitle())
      }
    },
    {
      name: "批量删除",
      buttonClass: 'danger',
      width: 100,
      isShow: (row: any) => {
        return false;
      },
      click: () => {   //暴露的方法钩子
        console.log(baseTable.value.getSelection());
      },
    },
  ]
})
// 表格初始化Model
const baseTableModel = ref({
  border: true,
  pagination: true,
  inline: true,
  selectable: true,
  isFullscreen: false,
  tooltip: true,
  minWidth: '200px',
  data: {    //table  初始化
    current: 1,
    size: 10,
    total: 100,
    data: []
  },
  requestData: { api: AssistSpecialRoomApi.getPageData, query: {} },   //数据源 参数有效性： 'steady|transient'
  columns: [
    //  {
    //   label: "id",
    //   field: "id",
    //   width:100,
    //     },
    // {
    //   label: "排序",
    //   field: "sort",
    //   width: 120,
    // },
    {
      label: "日期",
      field: "date",
      width: 200,
      fieldFormat: "date"
    },
    // {
    //   label: "地点",
    //   field: "place",
    //   width: 180,
    // },
    {
      label: "类型",
      field: "type",
      fieldFormat: "tag",
      valueMap: enumList,
      noExported: true,

      // valueMap: [
      //   {
      //     value: '1',
      //     label: "紫外线消毒记录",
      //     type: "primary"
      //   },
      //   {
      //     value: 2,
      //     label: "专间温湿度记录",
      //     type: "info"
      //   }
      // ],
      width: 120,
    },
    {
      label: "餐次",
      field: "mealTimes",
      width: 180,
    },
    {
      label: "时间",
      field: "mealTime",
      width: 180,
    },
    // {
    //   label: "温度",
    //   field: "breakfastTemperature",
    //   width: 180,
    // },
    // {
    //   label: "湿度",
    //   field: "breakfastHumidity",
    //   width: 180,
    // },
    {
      label: "是否消毒",
      field: "isBreakfastDisinfect",
      fieldFormat: "tag",
      valueMap: [
        {
          value: '1',
          label: "否",
          type: "danger"
        },
        {
          value: '0',
          label: "是",
          type: "success"
        }
      ],
      width: 120,
    },
    // {
    //   label: "午餐",
    //   field: "lunch",
    //   width: 180,
    // },
    // {
    //   label: "时间",
    //   field: "lunchTime",
    //   width: 180,
    // },
    // {
    //   label: "温度",
    //   field: "lunchTemperature",
    //   width: 180,
    // },
    // {
    //   label: "湿度",
    //   field: "lunchHumidity",
    //   width: 180,
    // },
    // {
    //   label: "是否消毒",
    //   field: "isLunchDisinfect",
    //   fieldFormat: "tag",
    //   valueMap: [
    //     {
    //       value: '0',
    //       label: "否",
    //       type: "danger"
    //     },
    //     {
    //       value: '1',
    //       label: "是",
    //       type: "success"
    //     }
    //   ],
    //   width: 180,
    //   noExported: true
    // },
    // {
    //   label: "晚餐",
    //   field: "dinner",
    //   width: 180,
    // },
    // {
    //   label: "时间",
    //   field: "dinnerTime",
    //   width: 180,
    // },
    // {
    //   label: "温度",
    //   field: "dinnerTemperature",
    //   width: 180,
    // },
    // {
    //   label: "湿度",
    //   field: "dinnerHumidity",
    //   width: 180,
    // },
    // {
    //   label: "是否消毒",
    //   field: "isDinnerDisinfect",
    //   fieldFormat: "tag",
    //   valueMap: [
    //     {
    //       value: '0',
    //       label: "否",
    //       type: "danger"
    //     },
    //     {
    //       value: '1',
    //       label: "是",
    //       type: "success"
    //     }
    //   ],
    //   width: 180,
    //   noExported: true

    // },
    {
      label: "累计时间",
      field: "totalTime",
      width: 180,
    },
    {
      label: "消毒/记录人",
      field: "operatorName",
      width: 180,
    },
    //  {
    //   label: "所属公司",
    //   field: "companyId",
    //   width:120,
    //     },
    // {
    //   label: "创建人",
    //   field: "creatorName",
    //   width: 180,
    // },
    // {
    //   label: "修改人",
    //   field: "reviserName",
    //   width: 180,
    // },
    {
      label: "创建时间",
      field: "create_time",
      width: 200,
    },
    {
      label: "更新时间",
      field: "update_time",
      width: 200,
    },
  ],


  actions: [
    {
      name: "详情",

      buttonClass: 'primary',
      buttonType: 'text',
      click: ({ row, index, handlers }) => {

        //router.push({name: 'CompanyInfoDetail',})
        VDialog.open({
          title: '详情',
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/assistSpecialRoom/detail',
            query: { assistSpecialRoomId: row.id },

          },
          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });
      },
      isShow: (row: object) => {
        return true;
      },
      fixed: 'right'
    },
    {
      name: "编辑",
      buttonClass: 'primary',   //按钮颜色控制
      buttonType: 'text',      // 按钮风格   text  link  button
      isShow: (row: object) => {  //根据业务做动态隐藏张氏
        return true
      },
      click: ({ row, index, handlers }) => {        // 点击回调事件方法钩子，  点击触发

        VDialog.open({
          title: '编辑',
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/assistSpecialRoom/edit',
            query: { assistSpecialRoomId: row.id },

          },

          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });

      },
      fixed: 'right'
    },

    {
      name: "删除",
      buttonClass: 'danger',
      buttonType: 'text',
      fixed: 'right',
      click: ({ row, index, handlers }) => {

        $baseConfirm('您确定要删除当前项吗', null, async () => {

          const { message } = await AssistSpecialRoomApi.del({ assistSpecialRoomIds: row.id })
          $baseMessage(message, 'success', 'vab-hey-message-success');

          handlers.refresh()

        })

      }
    },

  ]

})



onActivated(() => {
})



</script>
